
import Lexico.AnalisadorLexico;
import Sintatico.ParserRD;
import Utils.Token;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import View.MainView;
import java.io.FileReader;
import java.io.IOException;
import java.io.PushbackReader;
import java.util.ArrayList;

public class Main {

    public static void main(String[] params) {
        try {
            PushbackReader texto = new PushbackReader(new FileReader("C:\\Users\\Adriano\\Documents\\NetBeansProjects\\compilador\\teste.txt"));
            //
            AnalisadorLexico lexico = new AnalisadorLexico(texto);
            ArrayList<Token> tokens = lexico.analisar();
            System.out.println("******* Lista de Tokens *********");
            imprimeEstados(tokens);
//                    AnalisadorSintatico sintatico = new AnalisadorSintatico(tokens);
//                    sintatico.analisar();
            System.out.println("******* Analise ParserED *********");
            ParserRD parser = new ParserRD(tokens);
            parser.analisar();
            //MainView.this.saidaTexto.setText();
        } catch (IOException e) {

            e.printStackTrace();
        }

//        try {
//
//            UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
//        } catch (UnsupportedLookAndFeelException | IllegalAccessException | InstantiationException | ClassNotFoundException ex) {
//        }
//        UIManager.put("swing.boldMetal", Boolean.FALSE);
//
//        javax.swing.SwingUtilities.invokeLater(new Runnable() {
//
//            @Override
//            public void run() {
//                MainView view = new MainView();
//                view.showMain();
//            }
//        });
    }

    public static String imprimeEstados(ArrayList<Token> tokens) {
        String resultado = "";
        String linha = "";
        for (Token token : tokens) {
//            linha = "Token: " + token.getNome() + " Valor: " + token.getValor() 
//                + " Linha: " + token.getLinha() + " Coluna: " + token.getColuna() 
//                +  '\n';
//            resultado = resultado + linha;]
            
            System.out.println("Index: " + tokens.indexOf(token) + " - " + token);
        }
        return resultado;
    }
}
